#ifndef __METAFILE__
#define __METAFILE__
#include "../server/include/head.h"
#define ARRLEN 512
#define QUERYLEN 4096
typedef struct fileMeta_s{
    int fid;                // 主键Id，自动增长
    char fileName[ARRLEN]; // 文件名
    char userName[ARRLEN];  // 用户名
    int parentId;           // 父亲Id
    char hashName[ARRLEN];   // 文件md5哈希后的值
    char fileType;          // 类型（‘d'表示目录，’f'表示文件）
    char filePath[ARRLEN];    // 文件路径
} fileMeta_t;
//  声明
extern MYSQL *mysql;
//  mysql连接
int mysqlConnect(MYSQL **mysql);
// 把结构体中的有效数据插入到文件元数据表中
int insertDataToFileTable(MYSQL *mysql, fileMeta_t *meta);
// 检查路径是否存在 path是已经处理路径格式的路径
int checkFilePathExists(MYSQL *mysql, char *filePath, char *userName);
// 检查目录路径是否存在 path是已经处理路径格式的路径
int checkDirPathExists(MYSQL *mysql, char *filePath, char *userName);
// 检查hashName是否存在（给服务端用）,存在返回0，不存在返回-1
int checkHashNameExists(MYSQL *mysql, char *hashName);
//  根据路径寻找fid
int getFidByFilepath(MYSQL *mysql, char *filePath, char *userName, int *fid);
//  根据fid去查询获取filePath
int getPathByFid(MYSQL *mysql, int fid, char *filePath);
//  根据pathId获取userName
int getUsernameByFid(MYSQL *mysql, int pathId, char *userName);
//  根据当前用户名字获取当前用户的根目录ID
int getUserRootPathIdByUsername(MYSQL *mysql, char *userName);
#endif
